#include "define.h"
#include "draw.h"
#include "utils.h"
#include "control.h"
#include "terminal.h"
#include "game.h"
#include "window.h"

#include "color.h"

#define WIN_STYLE WIN_DOUBLE

//game init
void init()
{
#ifdef _WIN32
    system("chcp 65001");
#endif

    tc::hide_cursor();      // hide cursor //取消光标
    gm::start_listener();   // start key thread //启动监听线程
    gm::init();             // game init //游戏初始化

    // draw windows
    ui::show_windows();
}

//game loop
void loop()
{
    while(gm::running)
    {
        if(!gm::lose)
        {
            gm::process();
            ui::show_game();     // reset color buffer   
            ui::show_help();
        }
        else
        {
            dw::losed(8, 10); //画游戏结束画面
        }
        std::this_thread::sleep_for(6ms);    //s ms us ns
    }
}

//game exit
void exit()
{
    ui::show_exit();
}

//main
int main()
{
    init();
    loop();
    exit();

    return 0;
}